隨著上一篇文章我們設定完所有相關的開發環境後,也熟悉各項工具所在位置後,接著再來介紹一個好用的套件 Lombok
Lombok 是一個 Java 庫,它使用注解來自動生成常見的 Java 代碼,如 getter、setter、構造函數等。它的主要目標是減少樣板代碼,提高代碼的可讀性和維護性,透過使用註解的方式為程式碼添加標籤,使得開發者可以大大簡化 Java 程式碼。
我們可以在建立一個新專案時先將他載入專案裡面
或者也可以在 Maven 項目中添加
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
以下列出幾項常見的註解
@Getter 和 @Setter
這兩個注解可以自動為類的字段生成 getter 和 setter 方法。
透過這個註解可以省去Getter跟Setter的程式碼,直接就可以使用相同的功能
大概使用方法如下:
@Getter
@Setter
public class User {
private String name;
private int age;
}
public class Main {
public static void main(String[] args) {
User user = new User();
// 使用 setter 方法
user.setName("John Doe");
user.setAge(30);
// 使用 getter 方法
String name = user.getName();
int age = user.getAge();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
@ToString
自動生成 toString() 方法,透過這個註解可以省去額外設計toString的程式碼
大概使用方式如下:
@Getter
@Setter
@ToString
public class User {
private String name;
private int age;
}
public class Main {
public static void main(String[] args) {
User user = new User();
// 使用 setter 方法
user.setName("John Doe");
user.setAge(30);
String userData = user.toString();
System.out.println(userData);
}
}
// 則最後輸出結果會像這樣
// User(name=John Doe, age=30)
@NoArgsConstructor、@RequiredArgsConstructor 和 @AllArgsConstructor
這些注解用於生成不同類型的構造函數,這些註解省略了建立建構元時的程式碼
* @NoArgsConstructor
添加一個無參數的建構元
* @AllArgsConstructor
添加一個包含所有參數的建構元
* @RequiredArgsConstructor
為有標記為 final 跟 Notnull 的參數建立建構元
@Data
這是一個複合注解,相當於 @Getter, @Setter, @ToString, @EqualsAndHashCode 和 @RequiredArgsConstructor 的組合
大概使用方式如下:
@Data
public class User {
private String name;
private int age;
}
@Builder
: 生成建造者模式代碼,透過這個註解我們可以更便利的填入資料,並且這種填入資料的方式支援部分填值的功能,代表不用全部的項目都必須要填值才可以建立
大概使用方式如下:
@Builder
public class User {
private String name;
private int age;
}
public class Main {
public static void main(String[] args) {
User user = new User();
// 正常設值
User user = User.builder()
.name("Jane Doe")
.age(30)
.build();
// 部分設值
User user = User.builder()
.name("Jane Doe")
.build();
}
}
@Slf4j
自動為類添加 SLF4J 日誌對象,也就是將添加 Log 的方式簡化,不使用這個註解的話使用 Log 需要先獲取 Log 的實例才能使用,使用這個註解的話就可以省略這個部分,直接使用 Log 添加訊息
大概使用方式如下:
@Slf4j
public class LogExample {
public void logSomething() {
log.info("一般訊息");
log.error("錯誤訊息");
}
}
本次教學介紹了 Lombok,透過 Lombok 的幫助,我們可以使程式碼變得更加簡潔、優雅,不管是開發上速度的提升,還是維護上都有顯著的幫助。